package com.doitedu.hbase.client;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Table;

import java.io.IOException;

/**
 * @Date 2021/12/13
 * @Created by HANGGE
 * @Description
 * 使用Java-API操作Hbase分布式数据库
 *     0)  添加依赖
 *     1) 请求zookeeper, 获取master节点信息 , 获取hbase集群信息
 *     2) 获取代表hbase的对象
 */

/**
 * JDBC
 * 1 注册驱动
 * 2 获取连接
 * 3 获取执行SQL得statement对象
 * 4 执行SQL
 * 5 如果是查询封装数据
 * 6 释放资源
 */
public class C01_Demo01 {
    public static void main(String[] args) throws Exception {
        /**
         *  new HBaseConfiguration();  如果方法过期 , 点进源码 , 对应的提示 ,注释上面的@Link
          */

        // 1 用户自定义的配置对象
        Configuration conf = HBaseConfiguration.create();
        // 2  连接zookeeper
        conf.set("hbase.zookeeper.quorum","linux01:2181,linux02:2181,linux03:2181");
        // 3 获取到了连接对象
        Connection conn = ConnectionFactory.createConnection(conf);
        // 4 获取指定hbase操作指令的对象
        //4.1 Admin对象  表的DDL语言  Tools  运维的命令 快照 NS
        Admin admin = conn.getAdmin();
        TableName[] tableNames = admin.listTableNames();
        for (TableName tableName : tableNames) {
            byte[] name = tableName.getName();
            System.out.println(new  String(name));
        }
        // 4.2 Table 表对象  表中的数据的操作
       // Table tbl = conn.getTable(TableName.valueOf("tb_user"));
        // 释放连接
        conn.close();


    }
}
